home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Nuntius 1.2 / src / MyToolSource / RenameVolume.cp < prev    next >
Encoding:
Text File  |  1993-09-11  |  2.7 KB  |  98 lines  |  [TEXT/MPS ]

  1. #include <Files.h>
  2. #include <stdio.h>
  3. #include <strings.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6.  
  7.  
  8. #if 0
  9. FUNCTION PBSetVInfo (paramBlock:  HParmBlkPtr; async:  BOOLEAN) :  OSErr;
  10.  
  11. ••• Use the XRef menu to refer to Technical Note #204.•••
  12.  
  13. Trap macro    _SetVolInfo
  14.  
  15. Parameter block
  16.   -->    12    ioCompletion  pointer
  17.   <--    16    ioResult      word
  18.   -->    18    ioNamePtr     pointer
  19.   -->    22    ioVRefNum     word
  20.   -->    30    ioVCrDate     long word
  21.   -->    34    ioVLsMod      long word
  22.   -->    38    ioVAtrb       word
  23.   -->    52    ioVClpSiz     long word
  24.   -->    72    ioVBkUp       long word
  25.   -->    76    ioVSeqNum     word
  26.   -->    90    ioVFndrInfo   32 bytes
  27.  
  28.  
  29. FUNCTION PBHGetVInfo (paramBlock:  HParmBlkPtr; async:  BOOLEAN) :  OSErr;
  30.  
  31. Trap macro    _HGetVInfo
  32.  
  33. Parameter block
  34.   -->    12    ioCompletion  pointer
  35.   <--    16    ioResult      word
  36.   <->    18    ioNamePtr     pointer
  37.   <->    22    ioVRefNum     word
  38.   -->    28    ioVolIndex    word
  39.   <--    30    ioVCrDate     long word
  40.   <--    34    ioVLsMod      long word
  41.   <--    38    ioVAtrb       word
  42.   <--    40    ioVNmFls      word
  43.   <--    42    ioVBitMap     word
  44.   <--    44    ioVAllocPtr   word
  45.   <--    46    ioVNmAlBlks   word
  46.   <--    48    ioVAlBlkSiz   long word
  47.   <--    52    ioVClpSiz     long word
  48.   <--    56    ioAlBlSt      word
  49.   <--    58    ioVNxtFNum    long word
  50.   <--    62    ioVFrBlk      word
  51.   <--    64    ioVSigWord    word
  52.   <--    66    ioVDrvInfo    word
  53.   <--    68    ioVDRefNum    word
  54.   <--    70    ioVFSID       word
  55.   <--    72    ioVBkUp       long word
  56.   <--    76    ioVSeqNum     word
  57.   <--    78    ioVWrCnt      long word
  58.   <--    82    ioVFilCnt     long word
  59.   <--    86    ioVDirCnt     long word
  60.   <--    90    ioVFndrInfo   32 bytes
  61. #endif
  62.  
  63. void PrintUsage()
  64. {
  65.     fprintf(stderr, "### RenameVolume  oldName  newName\n");
  66.     fprintf(stderr, "### Bad or missing parameter\n");
  67.     exit(1);
  68. }
  69.  
  70. void FailOSErr(OSErr err, const char *msg)
  71. {
  72.     if (err == noErr)
  73.         return;
  74.     fprintf(stderr, "### RenameVolume: got error = %ld\n", long(err));
  75.     fprintf(stderr, "### At: %s\n", msg);
  76.     exit(1);
  77. }
  78.  
  79. int main(int argc, char *argv[])
  80. {
  81.     if (argc != 3)
  82.         PrintUsage();
  83.     Str255 oldName, newName;
  84.     strcpy((char*)oldName, argv[1]);
  85.     strcpy((char*)newName, argv[2]);
  86. //    fprintf(stderr, "oldName = '%s', newName = '%s'\n", oldName, newName);
  87.     c2pstr((char*)oldName);
  88.     c2pstr((char*)newName);
  89.     HParamBlockRec pb;
  90.     memset(&pb, sizeof(pb), 1);
  91.     pb.volumeParam.ioNamePtr = oldName;
  92.     pb.volumeParam.ioVRefNum = 32000;
  93.     pb.volumeParam.ioVolIndex = -1; // use name and vrefnum
  94.     FailOSErr(PBHGetVInfoSync(&pb), "PBHGetVInfoSync");
  95.     pb.volumeParam.ioNamePtr = newName;
  96.     FailOSErr(PBSetVInfoSync(&pb), "PBSetVInfoSync");
  97.     return 0;
  98. }